package com.red.star.wechat.data.entity.bo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @ProjectName: macalline-work-server
 * @Package: com.red.star.macalline.data.entity.bo
 * @Description:
 * @Author: AMGuo
 * @CreateDate: 2018/8/24 下午5:02
 * @Version: 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CallEventInfoType {

    /**
     * 呼叫唯一标识。
     */
    private String callIdentifier;

    /**
     * 通知模式：
     * <p>
     * Notify：App不对呼叫进行控制。
     * Block：App可以指示小号业务平台做呼叫控制。
     */
    private String notificationMode;

    /**
     * 真实主叫号码
     */
    private String calling;

    /**
     * 真实被叫号码
     */
    private String called;

    /**
     * 虚拟号码
     */
    private String virtualNumber;

    /**
     * 呼叫状态事件，取值如下：
     * <p>
     * IDP：呼叫开始
     * Answer：应答
     * Release：
     * 呼叫结束包括：通话后主叫挂机、被叫挂机、接续被叫失败或呼叫正常结束，例如被叫无应答、用户费用耗尽、呼叫被其他App结束等。
     * <p>
     * 固定以“Notify”模式上报到App。
     * <p>
     * Exception：呼叫过程中发生的异常
     * 固定以“Notify”模式上报到App。
     */
    private String event;

    /**
     * 呼叫事件发生的时间戳。
     */
    private String timestamp;

    /**
     * 是否录音。
     * <p>
     * 1：录音
     * 0：不录音
     * 只有在notify情况下的release事件，exception事件和answer事件推送isRecord字段。默认0，不录音。
     */
    private String isRecord;

    /**
     * 扩展呼叫事件信息。
     */
    private ExtensionInfoType extInfo;
}
